﻿namespace _4_NovaAdmin.Web.Core.Option;


[ConfigSection("SwaggerSettings")]
public class SwaggerOptions
{
    public bool UseKnife4UI { get; set; }
    public OpenApiInfo OpenApiInfo { get; set; }
    public SecurityScheme SecurityScheme { get; set; }
    public SecurityRequirement SecurityRequirement { get; set; }
}

public class OpenApiInfo
{
    public string Title { get; set; }
    public string Version { get; set; }
    public string Description { get; set; }
    public Contact Contact { get; set; }
}

public class Contact
{
    public string Name { get; set; }
    public string Email { get; set; }
}

public class SecurityScheme
{
    public string Description { get; set; }
    public string Name { get; set; }
    public ParameterLocation In { get; set; }
    public SecuritySchemeType Type { get; set; }
    public string BearerFormat { get; set; }
    public string Scheme { get; set; }
}

public class SecurityRequirement
{
    public SecuritySchemeReference SecurityScheme { get; set; }
}

public class SecuritySchemeReference
{
    public ReferenceType Type { get; set; }
    public string Id { get; set; }
}

public enum ReferenceType { SecurityScheme }
public enum ParameterLocation { Header }
public enum SecuritySchemeType { ApiKey }